package com.zhengze;

public class Demo4 {
    public static void main(String[] args) {
        // [1-9]\d{1,8}  表示可以匹配1位或8位的数字，且开头第一数字的范围在[1-9]内
        // [1-9]放在正则表达式开头，就表示开头的首字符的范围应在1~9内
        // 若放在正则表达式末尾，就表示最后一个字符的范围应在1~9内
        String re = "[1-9]\\d{1,8}";
        System.out.println("1110".matches(re));  // true
        System.out.println("0111".matches(re));  // false

        System.out.println("------------");
        String re2 = "[1-9a-fA-F]{6}";
        System.out.println("1a2B3C".matches(re2));  // true

        System.out.println("-------------");
        String re3 = "[^0-9]{3}";  // 指定3个字符，但不包含数字
        System.out.println("abc".matches(re3));  // true
        System.out.println("ab3".matches(re3));  // false
        System.out.println("abcd".matches(re3));  // false

        System.out.println("---------------");
        String re4 = "Java|java|JAVA";
        System.out.println("Java".matches(re4));  // true
        System.out.println("java".matches(re4));  // true
        System.out.println("JAVA".matches(re4));  // true

        System.out.println("------------");
        String re5 = "learn\\s(java|C|Python)";
        System.out.println("java".matches(re5));  // false
        System.out.println("Python".matches(re5));  // false
        System.out.println("learn java".matches(re5));  // true
        System.out.println("learn Python".matches(re5));  // true

        System.out.println("--------------");
        // ^表示正则表达式的开头
        // $表示正则表达式的结尾
        String re6 = "^123\\d{3}$";
        System.out.println("123111".matches(re6));  // true

        System.out.println("-------");
        String re7 = "\\d{3,4}\\-\\d{6,8}";
        System.out.println("123-123456".matches(re7));
    }
}
